package com.kyivmohyla.kma2.client.gin;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.inject.client.GinModules;
import com.google.gwt.inject.client.Ginjector;
import com.kyivmohyla.kma2.client.AppController;
import com.kyivmohyla.kma2.client.view.LoginAllowView;
import com.kyivmohyla.kma2.client.view.LoginDeniedView;
import com.kyivmohyla.kma2.client.view.LoginView;
import com.kyivmohyla.kma2.client.view.engineer.EngineerEditOrderWindowView;
import com.kyivmohyla.kma2.client.view.engineer.EngineerMainView;
import com.kyivmohyla.kma2.client.view.header.Header;
import com.kyivmohyla.kma2.client.view.manager.ManagerClosedOrdersView;
import com.kyivmohyla.kma2.client.view.manager.ManagerEditOrderWindowView;
import com.kyivmohyla.kma2.client.view.manager.ManagerMainView;
import com.kyivmohyla.kma2.client.view.operator.FileUploadView;
import com.kyivmohyla.kma2.client.view.operator.OperatorEditOrderWindowView;
import com.kyivmohyla.kma2.client.view.operator.OperatorMainView;
import com.kyivmohyla.kma2.client.view.refbook.EquipmentReferenceBookView;
import com.kyivmohyla.kma2.client.view.refbook.NewItemTreeGridView;
import com.kyivmohyla.kma2.client.view.refbook.ServiceReferenceBookView;
import com.kyivmohyla.kma2.client.view.refbook.TreeGridView;

@GinModules(InjectorModule.class)
public interface Injector extends Ginjector {

    public static final Injector INSTANCE = GWT.create(Injector.class);

    public EventBus getEventBus();

    public AppController getAppController();

    public Header getHeader();

    public LoginView getLoginView();

    public LoginAllowView getLoginAllowView();

    public LoginDeniedView getLoginDeniedView();

    public OperatorMainView getOperatorMainView();

    public ManagerMainView getManagerMainView();

    public EngineerMainView getEngineerMainView();

    public OperatorEditOrderWindowView getOperatorEditOrderWindowView();

    public ManagerEditOrderWindowView getManagerEditOrderWindowView();

    public EngineerEditOrderWindowView getEngineerEditOrderWindowView();

    public TreeGridView getTreeGridView();

    public NewItemTreeGridView getNewItemTreeGridView();

    public ServiceReferenceBookView getServiceReferenceBookView();

    public EquipmentReferenceBookView getEquipmentReferenceBookView();

    public ManagerClosedOrdersView getManagerClosedOrdersView();

    public FileUploadView getFileUploadView();
}
